package team.knowers.qzhserver.course.datum.datum.service;

import team.knowers.qzhserver.course.datum.datum.entity.dao.DatumDO;
import team.knowers.qzhserver.course.datum.datum.entity.dto.DatumUpdateDTO;

import java.util.Set;

/**
 * @author zcb
 * @date 2024/3/7 21:30
 */
public interface DatumService {
    /**
     * 创建资料文件夹
     * @param cid   课程id
     * @param uid   用户id
     * @param name  文件夹名称
     * @return  是否创建成功
     */
    DatumDO createDatum(String cid, String uid, String name);

    /**
     * 通过id快速查找资料库
     * @param id 资料库id
     * @return  资料库对象
     */
    DatumDO getDatumById(String id);
    DatumCacheService getCacheService();

    /**
     * 更新资料库信息
     * @param datumUpdateDTO    资料库更新参数
     * @return  更新操作是否成功
     */
    Boolean updateDatum(DatumUpdateDTO datumUpdateDTO);

    /**
     * 删除资料库
     * @param id 资料库id
     * @return 是否删除成功
     */
    Boolean deleteDatum(String id) throws Exception;

    /**
     * 获取课程下所有资料库id的集合
     * @param cid   课程id
     * @return  课程下所有资料库id的集合
     */
    Set<String> getCourseDatumSet(String cid);
}
